home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / Ecore_X.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-01-09  |  55.4 KB  |  1,427 lines

  1. /*
  2.  * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
  3.  */
  4.  
  5. #ifndef _ECORE_X_H
  6. #define _ECORE_X_H
  7.  
  8. #ifdef EAPI
  9. #undef EAPI
  10. #endif
  11. #ifdef WIN32
  12. # ifdef BUILDING_DLL
  13. #  define EAPI __declspec(dllexport)
  14. # else
  15. #  define EAPI __declspec(dllimport)
  16. # endif
  17. #else
  18. # ifdef __GNUC__
  19. #  if __GNUC__ >= 4
  20. #   define EAPI __attribute__ ((visibility("default")))
  21. #  else
  22. #   define EAPI
  23. #  endif
  24. # else
  25. #  define EAPI
  26. # endif
  27. #endif
  28.  
  29. #include <sys/types.h>
  30.  
  31. /**
  32.  * @file
  33.  * @brief Ecore functions for dealing with the X Windows System
  34.  *
  35.  * Ecore_X provides a wrapper and convenience functions for using the
  36.  * X Windows System.  Function groups for this part of the library 
  37.  * include the following:
  38.  * @li @ref Ecore_X_Init_Group
  39.  * @li @ref Ecore_X_Display_Attr_Group
  40.  * @li @ref Ecore_X_Flush_Group
  41.  */
  42.  
  43. typedef unsigned int Ecore_X_ID;
  44. #ifndef _ECORE_X_WINDOW_PREDEF
  45. typedef Ecore_X_ID   Ecore_X_Window;
  46. #endif
  47. typedef Ecore_X_ID   Ecore_X_Pixmap;
  48. typedef Ecore_X_ID   Ecore_X_Drawable;
  49. typedef void       * Ecore_X_GC;
  50. typedef Ecore_X_ID   Ecore_X_Atom;
  51. typedef Ecore_X_ID   Ecore_X_Colormap;
  52. typedef Ecore_X_ID   Ecore_X_Time;
  53. typedef Ecore_X_ID   Ecore_X_Cursor;
  54. typedef void         Ecore_X_Display;
  55. typedef Ecore_X_ID   Ecore_X_Sync_Counter;
  56. typedef Ecore_X_ID   Ecore_X_Sync_Alarm;
  57.  
  58. #ifdef __cplusplus
  59. extern "C" {
  60. #endif
  61.    
  62. typedef struct _Ecore_X_Rectangle {
  63.    int x, y;
  64.    unsigned int width, height;
  65. } Ecore_X_Rectangle;
  66.  
  67. typedef struct _Ecore_X_Icon {
  68.    unsigned int  width, height;
  69.    unsigned int *data;
  70. } Ecore_X_Icon;
  71.  
  72. typedef enum _Ecore_X_Window_State {
  73.     /** The window is iconified. */
  74.     ECORE_X_WINDOW_STATE_ICONIFIED,
  75.  
  76.     /** The window is a modal dialog box. */
  77.     ECORE_X_WINDOW_STATE_MODAL,
  78.  
  79.     /** The window manager should keep the window's position fixed
  80.      * even if the virtual desktop scrolls. */
  81.     ECORE_X_WINDOW_STATE_STICKY,
  82.  
  83.     /** The window has the maximum vertical size. */
  84.     ECORE_X_WINDOW_STATE_MAXIMIZED_VERT,
  85.  
  86.     /** The window has the maximum horizontal size. */
  87.     ECORE_X_WINDOW_STATE_MAXIMIZED_HORZ,
  88.  
  89.     /** The window is shaded. */
  90.     ECORE_X_WINDOW_STATE_SHADED,
  91.  
  92.     /** The window should not be included in the taskbar. */
  93.     ECORE_X_WINDOW_STATE_SKIP_TASKBAR,
  94.  
  95.     /** The window should not be included in the pager. */
  96.     ECORE_X_WINDOW_STATE_SKIP_PAGER,
  97.  
  98.     /** The window is invisible (i.e. minimized/iconified) */
  99.     ECORE_X_WINDOW_STATE_HIDDEN,
  100.  
  101.     /** The window should fill the entire screen and have no
  102.      * window border/decorations */
  103.     ECORE_X_WINDOW_STATE_FULLSCREEN,
  104.  
  105.     /* The following are not documented because they are not
  106.      * intended for use in applications. */
  107.     ECORE_X_WINDOW_STATE_ABOVE,
  108.     ECORE_X_WINDOW_STATE_BELOW,
  109.  
  110.     /* FIXME: Documentation */
  111.     ECORE_X_WINDOW_STATE_DEMANDS_ATTENTION,
  112.  
  113.     /* Unknown state */
  114.     ECORE_X_WINDOW_STATE_UNKNOWN
  115.  
  116. } Ecore_X_Window_State;
  117.  
  118. typedef enum _Ecore_X_Window_State_Action {
  119.      ECORE_X_WINDOW_STATE_ACTION_REMOVE,
  120.      ECORE_X_WINDOW_STATE_ACTION_ADD,
  121.      ECORE_X_WINDOW_STATE_ACTION_TOGGLE
  122. } Ecore_X_Window_State_Action;
  123.  
  124. typedef enum _Ecore_X_Window_Stack_Mode {
  125.    ECORE_X_WINDOW_STACK_ABOVE = 0,
  126.    ECORE_X_WINDOW_STACK_BELOW = 1,
  127.    ECORE_X_WINDOW_STACK_TOP_IF = 2,
  128.    ECORE_X_WINDOW_STACK_BOTTOM_IF = 3,
  129.    ECORE_X_WINDOW_STACK_OPPOSITE = 4
  130. } Ecore_X_Window_Stack_Mode;
  131.  
  132. #define ECORE_X_SELECTION_TARGET_TARGETS "TARGETS"
  133. #define ECORE_X_SELECTION_TARGET_TEXT "TEXT"
  134. #define ECORE_X_SELECTION_TARGET_COMPOUND_TEXT "COMPOUND_TEXT"
  135. #define ECORE_X_SELECTION_TARGET_STRING "STRING"
  136. #define ECORE_X_SELECTION_TARGET_UTF8_STRING "UTF8_STRING"
  137. #define ECORE_X_SELECTION_TARGET_FILENAME "FILENAME"
  138.  
  139. #define ECORE_X_DND_VERSION 5
  140.  
  141. EAPI extern Ecore_X_Atom ECORE_X_DND_ACTION_COPY;
  142. EAPI extern Ecore_X_Atom ECORE_X_DND_ACTION_MOVE;
  143. EAPI extern Ecore_X_Atom ECORE_X_DND_ACTION_LINK;
  144. EAPI extern Ecore_X_Atom ECORE_X_DND_ACTION_ASK;
  145. EAPI extern Ecore_X_Atom ECORE_X_DND_ACTION_PRIVATE;
  146.  
  147. typedef enum _Ecore_X_Selection {
  148.    ECORE_X_SELECTION_PRIMARY,
  149.    ECORE_X_SELECTION_SECONDARY,
  150.    ECORE_X_SELECTION_XDND,
  151.    ECORE_X_SELECTION_CLIPBOARD
  152. } Ecore_X_Selection;
  153.  
  154. typedef enum _Ecore_X_Event_Mode
  155. {
  156.    ECORE_X_EVENT_MODE_NORMAL,
  157.    ECORE_X_EVENT_MODE_WHILE_GRABBED,
  158.    ECORE_X_EVENT_MODE_GRAB,
  159.    ECORE_X_EVENT_MODE_UNGRAB
  160. } Ecore_X_Event_Mode;
  161.  
  162. typedef enum _Ecore_X_Event_Detail
  163. {
  164.    ECORE_X_EVENT_DETAIL_ANCESTOR,
  165.    ECORE_X_EVENT_DETAIL_VIRTUAL,
  166.    ECORE_X_EVENT_DETAIL_INFERIOR,
  167.    ECORE_X_EVENT_DETAIL_NON_LINEAR,
  168.    ECORE_X_EVENT_DETAIL_NON_LINEAR_VIRTUAL,
  169.    ECORE_X_EVENT_DETAIL_POINTER,
  170.    ECORE_X_EVENT_DETAIL_POINTER_ROOT,
  171.    ECORE_X_EVENT_DETAIL_DETAIL_NONE
  172. } Ecore_X_Event_Detail;
  173.  
  174. typedef enum _Ecore_X_Event_Mask
  175. {
  176.    ECORE_X_EVENT_MASK_NONE                   = 0L,
  177.    ECORE_X_EVENT_MASK_KEY_DOWN               = (1L << 0),
  178.    ECORE_X_EVENT_MASK_KEY_UP                 = (1L << 1),
  179.    ECORE_X_EVENT_MASK_MOUSE_DOWN             = (1L << 2),
  180.    ECORE_X_EVENT_MASK_MOUSE_UP               = (1L << 3),
  181.    ECORE_X_EVENT_MASK_MOUSE_IN               = (1L << 4),
  182.    ECORE_X_EVENT_MASK_MOUSE_OUT              = (1L << 5),
  183.    ECORE_X_EVENT_MASK_MOUSE_MOVE             = (1L << 6),
  184.    ECORE_X_EVENT_MASK_WINDOW_DAMAGE          = (1L << 15),
  185.    ECORE_X_EVENT_MASK_WINDOW_VISIBILITY      = (1L << 16),
  186.    ECORE_X_EVENT_MASK_WINDOW_CONFIGURE       = (1L << 17),
  187.    ECORE_X_EVENT_MASK_WINDOW_RESIZE_MANAGE   = (1L << 18),
  188.    ECORE_X_EVENT_MASK_WINDOW_MANAGE          = (1L << 19),
  189.    ECORE_X_EVENT_MASK_WINDOW_CHILD_CONFIGURE = (1L << 20),
  190.    ECORE_X_EVENT_MASK_WINDOW_FOCUS_CHANGE    = (1L << 21),
  191.    ECORE_X_EVENT_MASK_WINDOW_PROPERTY        = (1L << 22),
  192.    ECORE_X_EVENT_MASK_WINDOW_COLORMAP        = (1L << 23),
  193.    ECORE_X_EVENT_MASK_WINDOW_GRAB            = (1L << 24),
  194.    ECORE_X_EVENT_MASK_MOUSE_WHEEL            = (1L << 29),
  195.    ECORE_X_EVENT_MASK_WINDOW_FOCUS_IN        = (1L << 30),
  196.    ECORE_X_EVENT_MASK_WINDOW_FOCUS_OUT       = (1L << 31)
  197. } Ecore_X_Event_Mask;
  198.  
  199. typedef enum _Ecore_X_Gravity {
  200.      ECORE_X_GRAVITY_FORGET = 0,
  201.      ECORE_X_GRAVITY_UNMAP = 0,
  202.      ECORE_X_GRAVITY_NW = 1,
  203.      ECORE_X_GRAVITY_N = 2,
  204.      ECORE_X_GRAVITY_NE = 3,
  205.      ECORE_X_GRAVITY_W = 4,
  206.      ECORE_X_GRAVITY_CENTER = 5,
  207.      ECORE_X_GRAVITY_E = 6,
  208.      ECORE_X_GRAVITY_SW = 7,
  209.      ECORE_X_GRAVITY_S = 8,
  210.      ECORE_X_GRAVITY_SE = 9,
  211.      ECORE_X_GRAVITY_STATIC = 10
  212. } Ecore_X_Gravity;
  213.  
  214. typedef struct _Ecore_X_Event_Key_Down                 Ecore_X_Event_Key_Down;
  215. typedef struct _Ecore_X_Event_Key_Up                   Ecore_X_Event_Key_Up;
  216. typedef struct _Ecore_X_Event_Mouse_Button_Down        Ecore_X_Event_Mouse_Button_Down;
  217. typedef struct _Ecore_X_Event_Mouse_Button_Up          Ecore_X_Event_Mouse_Button_Up;
  218. typedef struct _Ecore_X_Event_Mouse_Move               Ecore_X_Event_Mouse_Move;
  219. typedef struct _Ecore_X_Event_Mouse_In                 Ecore_X_Event_Mouse_In;
  220. typedef struct _Ecore_X_Event_Mouse_Out                Ecore_X_Event_Mouse_Out;
  221. typedef struct _Ecore_X_Event_Mouse_Wheel              Ecore_X_Event_Mouse_Wheel;
  222. typedef struct _Ecore_X_Event_Window_Focus_In          Ecore_X_Event_Window_Focus_In;
  223. typedef struct _Ecore_X_Event_Window_Focus_Out         Ecore_X_Event_Window_Focus_Out;
  224. typedef struct _Ecore_X_Event_Window_Keymap            Ecore_X_Event_Window_Keymap;
  225. typedef struct _Ecore_X_Event_Window_Damage            Ecore_X_Event_Window_Damage;
  226. typedef struct _Ecore_X_Event_Window_Visibility_Change Ecore_X_Event_Window_Visibility_Change;
  227. typedef struct _Ecore_X_Event_Window_Create            Ecore_X_Event_Window_Create;
  228. typedef struct _Ecore_X_Event_Window_Destroy           Ecore_X_Event_Window_Destroy;
  229. typedef struct _Ecore_X_Event_Window_Hide              Ecore_X_Event_Window_Hide;
  230. typedef struct _Ecore_X_Event_Window_Show              Ecore_X_Event_Window_Show;
  231. typedef struct _Ecore_X_Event_Window_Show_Request      Ecore_X_Event_Window_Show_Request;
  232. typedef struct _Ecore_X_Event_Window_Reparent          Ecore_X_Event_Window_Reparent;
  233. typedef struct _Ecore_X_Event_Window_Configure         Ecore_X_Event_Window_Configure;
  234. typedef struct _Ecore_X_Event_Window_Configure_Request Ecore_X_Event_Window_Configure_Request;
  235. typedef struct _Ecore_X_Event_Window_Gravity           Ecore_X_Event_Window_Gravity;
  236. typedef struct _Ecore_X_Event_Window_Resize_Request    Ecore_X_Event_Window_Resize_Request;
  237. typedef struct _Ecore_X_Event_Window_Stack             Ecore_X_Event_Window_Stack;
  238. typedef struct _Ecore_X_Event_Window_Stack_Request     Ecore_X_Event_Window_Stack_Request;
  239. typedef struct _Ecore_X_Event_Window_Property          Ecore_X_Event_Window_Property;
  240. typedef struct _Ecore_X_Event_Window_Colormap          Ecore_X_Event_Window_Colormap;
  241. typedef struct _Ecore_X_Event_Window_Mapping           Ecore_X_Event_Window_Mapping;
  242. typedef struct _Ecore_X_Event_Selection_Clear          Ecore_X_Event_Selection_Clear;
  243. typedef struct _Ecore_X_Event_Selection_Request        Ecore_X_Event_Selection_Request;
  244. typedef struct _Ecore_X_Event_Selection_Notify         Ecore_X_Event_Selection_Notify;
  245. typedef struct _Ecore_X_Selection_Data                 Ecore_X_Selection_Data;
  246. typedef struct _Ecore_X_Selection_Data_Files           Ecore_X_Selection_Data_Files;
  247. typedef struct _Ecore_X_Selection_Data_Text            Ecore_X_Selection_Data_Text;
  248. typedef struct _Ecore_X_Selection_Data_Targets         Ecore_X_Selection_Data_Targets;
  249. typedef struct _Ecore_X_Event_Xdnd_Enter               Ecore_X_Event_Xdnd_Enter;
  250. typedef struct _Ecore_X_Event_Xdnd_Position            Ecore_X_Event_Xdnd_Position;
  251. typedef struct _Ecore_X_Event_Xdnd_Status              Ecore_X_Event_Xdnd_Status;
  252. typedef struct _Ecore_X_Event_Xdnd_Leave               Ecore_X_Event_Xdnd_Leave;
  253. typedef struct _Ecore_X_Event_Xdnd_Drop                Ecore_X_Event_Xdnd_Drop;
  254. typedef struct _Ecore_X_Event_Xdnd_Finished            Ecore_X_Event_Xdnd_Finished;
  255. typedef struct _Ecore_X_Event_Client_Message           Ecore_X_Event_Client_Message;
  256. typedef struct _Ecore_X_Event_Window_Shape             Ecore_X_Event_Window_Shape;
  257. typedef struct _Ecore_X_Event_Sync_Counter             Ecore_X_Event_Sync_Counter;
  258. typedef struct _Ecore_X_Event_Sync_Alarm               Ecore_X_Event_Sync_Alarm;
  259. typedef struct _Ecore_X_Event_Screen_Change            Ecore_X_Event_Screen_Change;
  260.  
  261. typedef struct _Ecore_X_Event_Window_Delete_Request                Ecore_X_Event_Window_Delete_Request;
  262. typedef struct _Ecore_X_Event_Window_Prop_Title_Change             Ecore_X_Event_Window_Prop_Title_Change;
  263. typedef struct _Ecore_X_Event_Window_Prop_Visible_Title_Change     Ecore_X_Event_Window_Prop_Visible_Title_Change;
  264. typedef struct _Ecore_X_Event_Window_Prop_Icon_Name_Change         Ecore_X_Event_Window_Prop_Icon_Name_Change;
  265. typedef struct _Ecore_X_Event_Window_Prop_Visible_Icon_Name_Change Ecore_X_Event_Window_Prop_Visible_Icon_Name_Change;
  266. typedef struct _Ecore_X_Event_Window_Prop_Client_Machine_Change    Ecore_X_Event_Window_Prop_Client_Machine_Change;
  267. typedef struct _Ecore_X_Event_Window_Prop_Name_Class_Change        Ecore_X_Event_Window_Prop_Name_Class_Change;
  268. typedef struct _Ecore_X_Event_Window_Prop_Pid_Change               Ecore_X_Event_Window_Prop_Pid_Change;
  269. typedef struct _Ecore_X_Event_Window_Prop_Desktop_Change           Ecore_X_Event_Window_Prop_Desktop_Change;
  270.  
  271. typedef struct _Ecore_X_Event_Window_Move_Resize_Request Ecore_X_Event_Window_Move_Resize_Request;
  272. typedef struct _Ecore_X_Event_Window_State_Request       Ecore_X_Event_Window_State_Request;
  273. typedef struct _Ecore_X_Event_Frame_Extents_Request      Ecore_X_Event_Frame_Extents_Request;
  274. typedef struct _Ecore_X_Event_Ping                       Ecore_X_Event_Ping;
  275. typedef struct _Ecore_X_Event_Desktop_Change             Ecore_X_Event_Desktop_Change;
  276.  
  277. typedef struct _Ecore_X_Event_Startup_Sequence           Ecore_X_Event_Startup_Sequence;
  278.  
  279. struct _Ecore_X_Event_Key_Down
  280. {
  281.    char   *keyname;
  282.    char   *keysymbol;
  283.    char   *key_compose;
  284.    int     modifiers;
  285.    Ecore_X_Window  win;
  286.    Ecore_X_Window  event_win;
  287.    Ecore_X_Time    time;
  288. };
  289.  
  290. struct _Ecore_X_Event_Key_Up
  291. {
  292.    char   *keyname;
  293.    char   *keysymbol;
  294.    char   *key_compose;
  295.    int     modifiers;
  296.    Ecore_X_Window  win;
  297.    Ecore_X_Window  event_win;
  298.    Ecore_X_Time    time;
  299. };
  300.  
  301. struct _Ecore_X_Event_Mouse_Button_Down
  302. {
  303.    int     button;
  304.    int     modifiers;
  305.    int     x, y;
  306.    struct {
  307.       int  x, y;
  308.    } root;
  309.    Ecore_X_Window  win;
  310.    Ecore_X_Window  event_win;
  311.    Ecore_X_Time    time;
  312.    int     double_click : 1;
  313.    int     triple_click : 1;
  314. };
  315.  
  316. struct _Ecore_X_Event_Mouse_Button_Up
  317. {
  318.    int     button;
  319.    int     modifiers;
  320.    int     x, y;
  321.    struct {
  322.       int  x, y;
  323.    } root;
  324.    Ecore_X_Window  win;
  325.    Ecore_X_Window  event_win;
  326.    Ecore_X_Time    time;
  327. };
  328.  
  329. struct _Ecore_X_Event_Mouse_Move
  330. {
  331.    int     modifiers;
  332.    int     x, y;
  333.    struct {
  334.       int  x, y;
  335.    } root;
  336.    Ecore_X_Window  win;
  337.    Ecore_X_Window  event_win;
  338.    Ecore_X_Time    time;
  339. };
  340.  
  341. struct _Ecore_X_Event_Mouse_In
  342. {
  343.    int                  modifiers;
  344.    int                  x, y;
  345.    struct {
  346.       int  x, y;
  347.    } root;
  348.    Ecore_X_Window               win;
  349.    Ecore_X_Window               event_win;
  350.    Ecore_X_Event_Mode   mode;
  351.    Ecore_X_Event_Detail detail;
  352.    Ecore_X_Time                 time;
  353. };
  354.  
  355. struct _Ecore_X_Event_Mouse_Out
  356. {
  357.    int                  modifiers;
  358.    int                  x, y;
  359.    struct {
  360.       int  x, y;
  361.    } root;
  362.    Ecore_X_Window               win;
  363.    Ecore_X_Window               event_win;
  364.    Ecore_X_Event_Mode   mode;
  365.    Ecore_X_Event_Detail detail;
  366.    Ecore_X_Time                 time;
  367. };
  368.  
  369. struct _Ecore_X_Event_Mouse_Wheel
  370. {
  371.    int direction; /* 0 = default up/down wheel FIXME: more wheel types */
  372.    int z; /* ...,-2,-1 = down, 1,2,... = up */
  373.    int modifiers;
  374.    int x, y;
  375.  
  376.    struct {
  377.       int x, y;
  378.    } root;
  379.  
  380.    Ecore_X_Window win;
  381.    Ecore_X_Window event_win;
  382.    Ecore_X_Time   time;
  383. };
  384.  
  385. struct _Ecore_X_Event_Window_Focus_In
  386. {
  387.    Ecore_X_Window       win;
  388.    Ecore_X_Event_Mode   mode;
  389.    Ecore_X_Event_Detail detail;
  390.    Ecore_X_Time         time;
  391. };
  392.  
  393. struct _Ecore_X_Event_Window_Focus_Out
  394. {
  395.    Ecore_X_Window       win;
  396.    Ecore_X_Event_Mode   mode;
  397.    Ecore_X_Event_Detail detail;
  398.    Ecore_X_Time         time;
  399. };
  400.  
  401. struct _Ecore_X_Event_Window_Keymap
  402. {
  403.    Ecore_X_Window  win;
  404. };
  405.  
  406. struct _Ecore_X_Event_Window_Damage
  407. {
  408.    Ecore_X_Window  win;
  409.    int             x, y, w, h;
  410.    Ecore_X_Time    time;
  411. };
  412.  
  413. struct _Ecore_X_Event_Window_Visibility_Change
  414. {
  415.    Ecore_X_Window  win;
  416.    int             fully_obscured;
  417.    Ecore_X_Time    time;
  418. };
  419.  
  420. struct _Ecore_X_Event_Window_Create
  421. {
  422.    Ecore_X_Window  win;
  423.    int             override;
  424.    Ecore_X_Time    time;
  425. };
  426.  
  427. struct _Ecore_X_Event_Window_Destroy
  428. {
  429.    Ecore_X_Window  win;
  430.    Ecore_X_Time    time;
  431. };
  432.  
  433. struct _Ecore_X_Event_Window_Hide
  434. {
  435.    Ecore_X_Window  win;
  436.    Ecore_X_Time    time;
  437. };
  438.  
  439. struct _Ecore_X_Event_Window_Show
  440. {
  441.    Ecore_X_Window  win;
  442.    Ecore_X_Time    time;
  443. };
  444.  
  445. struct _Ecore_X_Event_Window_Show_Request
  446. {
  447.    Ecore_X_Window  win;
  448.    Ecore_X_Window  parent;
  449.    Ecore_X_Time    time;
  450. };
  451.  
  452. struct _Ecore_X_Event_Window_Reparent
  453. {
  454.    Ecore_X_Window  win;
  455.    Ecore_X_Window  parent;
  456.    Ecore_X_Time    time;
  457. };
  458.  
  459. struct _Ecore_X_Event_Window_Configure
  460. {
  461.    Ecore_X_Window  win;
  462.    Ecore_X_Window  abovewin;
  463.    int             x, y, w, h;
  464.    int             border;
  465.    int             override : 1;
  466.    int             from_wm : 1;
  467.    Ecore_X_Time    time;
  468. };
  469.  
  470. struct _Ecore_X_Event_Window_Configure_Request
  471. {
  472.    Ecore_X_Window  win;
  473.    Ecore_X_Window  abovewin;
  474.    int             x, y, w, h;
  475.    int             border;
  476.    Ecore_X_Window_Stack_Mode detail;
  477.    unsigned long   value_mask;
  478.    Ecore_X_Time    time;
  479. };
  480.  
  481. struct _Ecore_X_Event_Window_Gravity
  482. {
  483.    Ecore_X_Window  win;
  484.    Ecore_X_Time    time;
  485. };
  486.  
  487. struct _Ecore_X_Event_Window_Resize_Request
  488. {
  489.    Ecore_X_Window  win;
  490.    int             w, h;
  491.    Ecore_X_Time    time;
  492. };
  493.  
  494. struct _Ecore_X_Event_Window_Stack
  495. {
  496.    Ecore_X_Window  win;
  497.    Ecore_X_Window  event_win;
  498.    Ecore_X_Window_Stack_Mode detail;
  499.    Ecore_X_Time    time;
  500. };
  501.  
  502. struct _Ecore_X_Event_Window_Stack_Request
  503. {
  504.    Ecore_X_Window  win;
  505.    Ecore_X_Window  parent;
  506.    Ecore_X_Window_Stack_Mode detail;
  507.    Ecore_X_Time    time;
  508. };
  509.  
  510. struct _Ecore_X_Event_Window_Property
  511. {
  512.    Ecore_X_Window  win;
  513.    Ecore_X_Atom    atom;
  514.    Ecore_X_Time    time;
  515. };
  516.  
  517. struct _Ecore_X_Event_Window_Colormap
  518. {
  519.    Ecore_X_Window   win;
  520.    Ecore_X_Colormap cmap;
  521.    int              installed;
  522.    Ecore_X_Time     time;
  523. };
  524.  
  525. struct _Ecore_X_Event_Selection_Clear
  526. {
  527.    Ecore_X_Window    win;
  528.    Ecore_X_Selection selection;
  529.    Ecore_X_Time      time;
  530. };
  531.  
  532. struct _Ecore_X_Event_Selection_Request
  533. {
  534.    Ecore_X_Window  win;
  535.    Ecore_X_Time    time;
  536. };
  537.  
  538. struct _Ecore_X_Event_Selection_Notify
  539. {
  540.    Ecore_X_Window             win;
  541.    Ecore_X_Time               time;
  542.    Ecore_X_Selection          selection;
  543.    char                      *target;
  544.    void                      *data;
  545.    enum {
  546.     ECORE_X_SELECTION_CONTENT_NONE,
  547.     ECORE_X_SELECTION_CONTENT_TEXT,
  548.     ECORE_X_SELECTION_CONTENT_FILES,
  549.     ECORE_X_SELECTION_CONTENT_TARGETS,
  550.     ECORE_X_SELECTION_CONTENT_CUSTOM
  551.    } content;
  552. };
  553.  
  554. struct _Ecore_X_Selection_Data
  555. {
  556.    unsigned char    *data;
  557.    int               length;
  558.  
  559.    int             (*free)(void *data);
  560. };
  561.  
  562. struct _Ecore_X_Selection_Data_Files
  563. {
  564.    Ecore_X_Selection_Data data;
  565.    char     **files;
  566.    int        num_files;
  567. };
  568.  
  569. struct _Ecore_X_Selection_Data_Text
  570. {
  571.    Ecore_X_Selection_Data data;
  572.    char     *text;
  573. };
  574.  
  575. struct _Ecore_X_Selection_Data_Targets
  576. {
  577.    Ecore_X_Selection_Data data;
  578.    char     **targets;
  579.    int        num_targets;
  580. };
  581.  
  582. struct _Ecore_X_Event_Xdnd_Enter
  583. {
  584.    Ecore_X_Window       win, source;
  585.  
  586.    char               **types;
  587.    int                  num_types;
  588. };
  589.  
  590. struct _Ecore_X_Event_Xdnd_Position
  591. {
  592.    Ecore_X_Window       win, source;
  593.    struct {
  594.       int x, y;
  595.    } position;
  596.    Ecore_X_Atom         action;
  597. };
  598.  
  599. struct _Ecore_X_Event_Xdnd_Status
  600. {
  601.    Ecore_X_Window       win, target;
  602.    int                  will_accept;
  603.    Ecore_X_Rectangle    rectangle;
  604.    Ecore_X_Atom         action;
  605. };
  606.  
  607. struct _Ecore_X_Event_Xdnd_Leave
  608. {
  609.    Ecore_X_Window       win, source;
  610. };
  611.  
  612. struct _Ecore_X_Event_Xdnd_Drop
  613. {
  614.    Ecore_X_Window       win, source;
  615.    Ecore_X_Atom         action;
  616.    struct {
  617.       int x, y;
  618.    } position;
  619. };
  620.  
  621. struct _Ecore_X_Event_Xdnd_Finished
  622. {
  623.    Ecore_X_Window       win, target;
  624.    int                  completed;
  625.    Ecore_X_Atom         action;
  626. };
  627.  
  628. struct _Ecore_X_Event_Client_Message
  629. {
  630.    Ecore_X_Window       win;
  631.    Ecore_X_Atom         message_type;
  632.    int                  format;
  633.    union {
  634.       char              b[20];
  635.       short             s[10];
  636.       long              l[5];
  637.    }                    data;
  638.    Ecore_X_Time         time;
  639. };
  640.  
  641. struct _Ecore_X_Event_Window_Shape
  642. {
  643.    Ecore_X_Window  win;
  644.    Ecore_X_Time    time;
  645. };
  646.  
  647. struct _Ecore_X_Event_Sync_Counter
  648. {
  649.    Ecore_X_Time    time;
  650. };
  651.  
  652. struct _Ecore_X_Event_Sync_Alarm
  653. {
  654.    Ecore_X_Time       time;
  655.    Ecore_X_Sync_Alarm alarm;
  656. };
  657.  
  658. struct _Ecore_X_Event_Screen_Change
  659. {
  660.    Ecore_X_Window win, root;
  661.    int            width, height;
  662. };
  663.  
  664. struct _Ecore_X_Event_Window_Delete_Request
  665. {
  666.    Ecore_X_Window  win;
  667.    Ecore_X_Time    time;
  668. };
  669.  
  670. struct _Ecore_X_Event_Window_Prop_Title_Change
  671. {
  672.    Ecore_X_Window  win;
  673.    char   *title;
  674.    Ecore_X_Time    time;
  675. };
  676.  
  677. struct _Ecore_X_Event_Window_Prop_Visible_Title_Change
  678. {
  679.    Ecore_X_Window  win;
  680.    char   *title;
  681.    Ecore_X_Time    time;
  682. };
  683.  
  684. struct _Ecore_X_Event_Window_Prop_Icon_Name_Change
  685. {
  686.    Ecore_X_Window  win;
  687.    char   *name;
  688.    Ecore_X_Time    time;
  689. };
  690.  
  691. struct _Ecore_X_Event_Window_Prop_Visible_Icon_Name_Change
  692. {
  693.    Ecore_X_Window  win;
  694.    char   *name;
  695.    Ecore_X_Time    time;
  696. };
  697.  
  698. struct _Ecore_X_Event_Window_Prop_Client_Machine_Change
  699. {
  700.    Ecore_X_Window  win;
  701.    char   *name;
  702.    Ecore_X_Time    time;
  703. };
  704.  
  705. struct _Ecore_X_Event_Window_Prop_Name_Class_Change
  706. {
  707.    Ecore_X_Window  win;
  708.    char   *name;
  709.    char   *clas;
  710.    Ecore_X_Time    time;
  711. };
  712.  
  713. struct _Ecore_X_Event_Window_Prop_Pid_Change
  714. {
  715.    Ecore_X_Window  win;
  716.    pid_t   pid;
  717.    Ecore_X_Time    time;
  718. };
  719.  
  720. struct _Ecore_X_Event_Window_Prop_Desktop_Change
  721. {
  722.    Ecore_X_Window  win;
  723.    long    desktop;
  724.    Ecore_X_Time    time;
  725. };
  726.  
  727. struct _Ecore_X_Event_Startup_Sequence
  728. {
  729.    Ecore_X_Window  win;
  730. };
  731.  
  732. struct _Ecore_X_Event_Window_Move_Resize_Request
  733. {
  734.    Ecore_X_Window win;
  735.    int            x, y;
  736.    int            direction;
  737.    int            button;
  738.    int            source;
  739. };
  740.  
  741. struct _Ecore_X_Event_Window_State_Request
  742. {
  743.    Ecore_X_Window              win;
  744.    Ecore_X_Window_State_Action action;
  745.    Ecore_X_Window_State        state[2];
  746.    int                         source;
  747. };
  748.  
  749. struct _Ecore_X_Event_Frame_Extents_Request
  750. {
  751.    Ecore_X_Window              win;
  752. };
  753.  
  754. struct _Ecore_X_Event_Ping
  755. {
  756.    Ecore_X_Window  win;
  757.    Ecore_X_Window  event_win;
  758.    Ecore_X_Time    time;
  759. };
  760.  
  761. struct _Ecore_X_Event_Desktop_Change
  762. {
  763.    Ecore_X_Window              win;
  764.    unsigned int                desk;
  765.    int                         source;
  766. };
  767.  
  768. EAPI extern int ECORE_X_EVENT_KEY_DOWN;
  769. EAPI extern int ECORE_X_EVENT_KEY_UP;
  770. EAPI extern int ECORE_X_EVENT_MOUSE_BUTTON_DOWN;
  771. EAPI extern int ECORE_X_EVENT_MOUSE_BUTTON_UP;
  772. EAPI extern int ECORE_X_EVENT_MOUSE_MOVE;
  773. EAPI extern int ECORE_X_EVENT_MOUSE_IN;
  774. EAPI extern int ECORE_X_EVENT_MOUSE_OUT;
  775. EAPI extern int ECORE_X_EVENT_MOUSE_WHEEL;
  776. EAPI extern int ECORE_X_EVENT_WINDOW_FOCUS_IN;
  777. EAPI extern int ECORE_X_EVENT_WINDOW_FOCUS_OUT;
  778. EAPI extern int ECORE_X_EVENT_WINDOW_KEYMAP;
  779. EAPI extern int ECORE_X_EVENT_WINDOW_DAMAGE;
  780. EAPI extern int ECORE_X_EVENT_WINDOW_VISIBILITY_CHANGE;
  781. EAPI extern int ECORE_X_EVENT_WINDOW_CREATE;
  782. EAPI extern int ECORE_X_EVENT_WINDOW_DESTROY;
  783. EAPI extern int ECORE_X_EVENT_WINDOW_HIDE;
  784. EAPI extern int ECORE_X_EVENT_WINDOW_SHOW;
  785. EAPI extern int ECORE_X_EVENT_WINDOW_SHOW_REQUEST;
  786. EAPI extern int ECORE_X_EVENT_WINDOW_REPARENT;
  787. EAPI extern int ECORE_X_EVENT_WINDOW_CONFIGURE;
  788. EAPI extern int ECORE_X_EVENT_WINDOW_CONFIGURE_REQUEST;
  789. EAPI extern int ECORE_X_EVENT_WINDOW_GRAVITY;
  790. EAPI extern int ECORE_X_EVENT_WINDOW_RESIZE_REQUEST;
  791. EAPI extern int ECORE_X_EVENT_WINDOW_STACK;
  792. EAPI extern int ECORE_X_EVENT_WINDOW_STACK_REQUEST;
  793. EAPI extern int ECORE_X_EVENT_WINDOW_PROPERTY;
  794. EAPI extern int ECORE_X_EVENT_WINDOW_COLORMAP;
  795. EAPI extern int ECORE_X_EVENT_WINDOW_MAPPING;
  796. EAPI extern int ECORE_X_EVENT_SELECTION_CLEAR;
  797. EAPI extern int ECORE_X_EVENT_SELECTION_REQUEST;
  798. EAPI extern int ECORE_X_EVENT_SELECTION_NOTIFY;
  799. EAPI extern int ECORE_X_EVENT_CLIENT_MESSAGE;
  800. EAPI extern int ECORE_X_EVENT_WINDOW_SHAPE;
  801. EAPI extern int ECORE_X_EVENT_SYNC_COUNTER;
  802. EAPI extern int ECORE_X_EVENT_SYNC_ALARM;
  803. EAPI extern int ECORE_X_EVENT_SCREEN_CHANGE;
  804.  
  805. EAPI extern int ECORE_X_EVENT_WINDOW_DELETE_REQUEST;
  806. /*
  807. EAPI extern int ECORE_X_EVENT_WINDOW_PROP_TITLE_CHANGE;
  808. EAPI extern int ECORE_X_EVENT_WINDOW_PROP_VISIBLE_TITLE_CHANGE;
  809. EAPI extern int ECORE_X_EVENT_WINDOW_PROP_ICON_NAME_CHANGE;
  810. EAPI extern int ECORE_X_EVENT_WINDOW_PROP_VISIBLE_ICON_NAME_CHANGE;
  811. EAPI extern int ECORE_X_EVENT_WINDOW_PROP_CLIENT_MACHINE_CHANGE;
  812. EAPI extern int ECORE_X_EVENT_WINDOW_PROP_NAME_CLASS_CHANGE;
  813. EAPI extern int ECORE_X_EVENT_WINDOW_PROP_PID_CHANGE;
  814. EAPI extern int ECORE_X_EVENT_WINDOW_PROP_DESKTOP_CHANGE;
  815. */
  816.  
  817. EAPI extern int ECORE_X_EVENT_WINDOW_MOVE_RESIZE_REQUEST;
  818. EAPI extern int ECORE_X_EVENT_WINDOW_STATE_REQUEST;
  819. EAPI extern int ECORE_X_EVENT_FRAME_EXTENTS_REQUEST;
  820. EAPI extern int ECORE_X_EVENT_PING;
  821. EAPI extern int ECORE_X_EVENT_DESKTOP_CHANGE;
  822.  
  823. EAPI extern int ECORE_X_EVENT_STARTUP_SEQUENCE_NEW;
  824. EAPI extern int ECORE_X_EVENT_STARTUP_SEQUENCE_CHANGE;
  825. EAPI extern int ECORE_X_EVENT_STARTUP_SEQUENCE_REMOVE;
  826.  
  827. EAPI extern int ECORE_X_EVENT_XDND_ENTER;
  828. EAPI extern int ECORE_X_EVENT_XDND_POSITION;
  829. EAPI extern int ECORE_X_EVENT_XDND_STATUS;
  830. EAPI extern int ECORE_X_EVENT_XDND_LEAVE;
  831. EAPI extern int ECORE_X_EVENT_XDND_DROP;
  832. EAPI extern int ECORE_X_EVENT_XDND_FINISHED;
  833.    
  834. EAPI extern int ECORE_X_MODIFIER_SHIFT;
  835. EAPI extern int ECORE_X_MODIFIER_CTRL;
  836. EAPI extern int ECORE_X_MODIFIER_ALT;
  837. EAPI extern int ECORE_X_MODIFIER_WIN;
  838.  
  839. EAPI extern int ECORE_X_LOCK_SCROLL;
  840. EAPI extern int ECORE_X_LOCK_NUM;
  841. EAPI extern int ECORE_X_LOCK_CAPS;
  842.  
  843. typedef enum _Ecore_X_WM_Protocol {
  844.     /**
  845.      * If enabled the window manager will be asked to send a
  846.      * delete message instead of just closing (destroying) the window.
  847.      */
  848.     ECORE_X_WM_PROTOCOL_DELETE_REQUEST,
  849.  
  850.     /**
  851.      * If enabled the window manager will be told that the window
  852.      * explicitly sets input focus.
  853.      */
  854.     ECORE_X_WM_PROTOCOL_TAKE_FOCUS,
  855.  
  856.     /**
  857.      * If enabled the window manager can ping the window to check
  858.      * if it is alive.
  859.      */
  860.     ECORE_X_NET_WM_PROTOCOL_PING,
  861.  
  862.     /**
  863.      * If enabled the window manager can sync updating with the
  864.      * window (?)
  865.      */
  866.     ECORE_X_NET_WM_PROTOCOL_SYNC_REQUEST,
  867.  
  868.     /* Number of defined items */
  869.     ECORE_X_WM_PROTOCOL_NUM
  870. } Ecore_X_WM_Protocol;
  871.  
  872. typedef enum _Ecore_X_Window_Input_Mode {
  873.     /** The window can never be focused */
  874.     ECORE_X_WINDOW_INPUT_MODE_NONE,
  875.     
  876.     /** The window can be focused by the WM but doesn't focus itself */
  877.     ECORE_X_WINDOW_INPUT_MODE_PASSIVE,
  878.  
  879.     /** The window sets the focus itself if one of its sub-windows
  880.      * already is focused
  881.      */
  882.     ECORE_X_WINDOW_INPUT_MODE_ACTIVE_LOCAL,
  883.  
  884.     /** The window sets the focus itself even if another window
  885.      * is currently focused
  886.      */
  887.     ECORE_X_WINDOW_INPUT_MODE_ACTIVE_GLOBAL
  888. } Ecore_X_Window_Input_Mode;
  889.  
  890. typedef enum _Ecore_X_Window_State_Hint {
  891.    /** Do not provide any state hint to the window manager */
  892.    ECORE_X_WINDOW_STATE_HINT_NONE = -1,
  893.    
  894.    /** The window wants to remain hidden and NOT iconified */
  895.    ECORE_X_WINDOW_STATE_HINT_WITHDRAWN,
  896.    
  897.    /** The window wants to be mapped normally */
  898.    ECORE_X_WINDOW_STATE_HINT_NORMAL,
  899.    
  900.    /** The window wants to start in an iconified state */
  901.    ECORE_X_WINDOW_STATE_HINT_ICONIC,
  902. } Ecore_X_Window_State_Hint;
  903.  
  904. typedef enum _Ecore_X_Window_Type {
  905.     ECORE_X_WINDOW_TYPE_DESKTOP,
  906.     ECORE_X_WINDOW_TYPE_DOCK,
  907.     ECORE_X_WINDOW_TYPE_TOOLBAR,
  908.     ECORE_X_WINDOW_TYPE_MENU,
  909.     ECORE_X_WINDOW_TYPE_UTILITY,
  910.     ECORE_X_WINDOW_TYPE_SPLASH,
  911.     ECORE_X_WINDOW_TYPE_DIALOG,
  912.     ECORE_X_WINDOW_TYPE_NORMAL,
  913.     ECORE_X_WINDOW_TYPE_UNKNOWN
  914. } Ecore_X_Window_Type;
  915.  
  916. typedef enum _Ecore_X_Action {
  917.     ECORE_X_ACTION_MOVE,
  918.     ECORE_X_ACTION_RESIZE,
  919.     ECORE_X_ACTION_MINIMIZE,
  920.     ECORE_X_ACTION_SHADE,
  921.     ECORE_X_ACTION_STICK,
  922.     ECORE_X_ACTION_MAXIMIZE_HORZ,
  923.     ECORE_X_ACTION_MAXIMIZE_VERT,
  924.     ECORE_X_ACTION_FULLSCREEN,
  925.     ECORE_X_ACTION_CHANGE_DESKTOP,
  926.     ECORE_X_ACTION_CLOSE
  927. } Ecore_X_Action;
  928.  
  929. typedef enum _Ecore_X_Window_Configure_Mask {
  930.    ECORE_X_WINDOW_CONFIGURE_MASK_X              = (1 << 0),
  931.    ECORE_X_WINDOW_CONFIGURE_MASK_Y              = (1 << 1),
  932.    ECORE_X_WINDOW_CONFIGURE_MASK_W              = (1 << 2),
  933.    ECORE_X_WINDOW_CONFIGURE_MASK_H              = (1 << 3),
  934.    ECORE_X_WINDOW_CONFIGURE_MASK_BORDER_WIDTH   = (1 << 4),
  935.    ECORE_X_WINDOW_CONFIGURE_MASK_SIBLING        = (1 << 5),
  936.    ECORE_X_WINDOW_CONFIGURE_MASK_STACK_MODE     = (1 << 6)
  937. } Ecore_X_Window_Configure_Mask;
  938.  
  939. /* Window layer constants */
  940. #define ECORE_X_WINDOW_LAYER_BELOW 2
  941. #define ECORE_X_WINDOW_LAYER_NORMAL 4
  942. #define ECORE_X_WINDOW_LAYER_ABOVE 6
  943.  
  944. /* Property list operations */
  945. #define ECORE_X_PROP_LIST_REMOVE    0
  946. #define ECORE_X_PROP_LIST_ADD       1
  947. #define ECORE_X_PROP_LIST_TOGGLE    2
  948.  
  949.  
  950. EAPI int              ecore_x_init(const char *name);
  951. EAPI int              ecore_x_shutdown(void);       
  952. EAPI int              ecore_x_disconnect(void);       
  953. EAPI Ecore_X_Display *ecore_x_display_get(void);
  954. EAPI int              ecore_x_fd_get(void);
  955. EAPI void             ecore_x_double_click_time_set(double t);
  956. EAPI double           ecore_x_double_click_time_get(void);
  957. EAPI void             ecore_x_flush(void);
  958. EAPI void             ecore_x_sync(void);
  959. EAPI void             ecore_x_killall(Ecore_X_Window root);
  960. EAPI void             ecore_x_kill(Ecore_X_Window win);
  961.  
  962. EAPI Ecore_X_Time     ecore_x_current_time_get(void);
  963.        
  964. EAPI void             ecore_x_error_handler_set(void (*func) (void *data), const void *data);
  965. EAPI void             ecore_x_io_error_handler_set(void (*func) (void *data), const void *data);
  966. EAPI int              ecore_x_error_request_get(void);
  967. EAPI int              ecore_x_error_code_get(void);
  968.  
  969. EAPI void             ecore_x_event_mask_set(Ecore_X_Window w, Ecore_X_Event_Mask mask);
  970. EAPI void             ecore_x_event_mask_unset(Ecore_X_Window w, Ecore_X_Event_Mask mask);
  971.  
  972. EAPI int              ecore_x_selection_primary_set(Ecore_X_Window w, unsigned char *data, int size);
  973. EAPI int              ecore_x_selection_primary_clear(void);
  974. EAPI int              ecore_x_selection_secondary_set(Ecore_X_Window w, unsigned char *data, int size);
  975. EAPI int              ecore_x_selection_secondary_clear(void);
  976. EAPI int              ecore_x_selection_xdnd_set(Ecore_X_Window w, unsigned char *data, int size);
  977. EAPI int              ecore_x_selection_xdnd_clear(void);
  978. EAPI int              ecore_x_selection_clipboard_set(Ecore_X_Window w, unsigned char *data, int size);
  979. EAPI int              ecore_x_selection_clipboard_clear(void);
  980. EAPI void             ecore_x_selection_primary_request(Ecore_X_Window w, char *target);
  981. EAPI void             ecore_x_selection_primary_request_data_get(void **buf, int *len);
  982. EAPI void             ecore_x_selection_secondary_request(Ecore_X_Window w, char *target);
  983. EAPI void             ecore_x_selection_secondary_request_data_get(void **buf, int *len);
  984. EAPI void             ecore_x_selection_xdnd_request(Ecore_X_Window w, char *target);
  985. EAPI void             ecore_x_selection_xdnd_request_data_get(void **buf, int *len);
  986. EAPI void             ecore_x_selection_clipboard_request(Ecore_X_Window w, char *target);
  987. EAPI void             ecore_x_selection_clipboard_request_data_get(void **buf, int *len);
  988. EAPI void             ecore_x_selection_converter_add(char *target, int (*func)(char *target, void *data, int size, void **data_ret, int *size_ret));
  989. EAPI void             ecore_x_selection_converter_atom_add(Ecore_X_Atom target, int (*func)(char *target, void *data, int size, void **data_ret, int *size_ret));
  990. EAPI void             ecore_x_selection_converter_del(char *target);
  991. EAPI void             ecore_x_selection_converter_atom_del(Ecore_X_Atom target);
  992. EAPI void             ecore_x_selection_parser_add(const char *target, void *(*func)(const char *target, unsigned char *data, int size));
  993. EAPI void             ecore_x_selection_parser_del(const char *target);
  994.  
  995. EAPI void             ecore_x_dnd_aware_set(Ecore_X_Window win, int on);
  996. EAPI int              ecore_x_dnd_version_get(Ecore_X_Window win);
  997. EAPI int              ecore_x_dnd_type_isset(Ecore_X_Window win, const char *type);
  998. EAPI void             ecore_x_dnd_type_set(Ecore_X_Window win, const char *type, int on);
  999. EAPI void             ecore_x_dnd_types_set(Ecore_X_Window win, char **types, unsigned int num_types);
  1000. EAPI int              ecore_x_dnd_begin(Ecore_X_Window source, unsigned char *data, int size);
  1001. EAPI int              ecore_x_dnd_drop(void);
  1002. EAPI void             ecore_x_dnd_send_status(int will_accept, int suppress, Ecore_X_Rectangle rectangle, Ecore_X_Atom action);
  1003. EAPI void             ecore_x_dnd_send_finished(void);
  1004.                  
  1005. EAPI Ecore_X_Window   ecore_x_window_new(Ecore_X_Window parent, int x, int y, int w, int h);
  1006. EAPI Ecore_X_Window   ecore_x_window_override_new(Ecore_X_Window parent, int x, int y, int w, int h);
  1007. EAPI Ecore_X_Window   ecore_x_window_input_new(Ecore_X_Window parent, int x, int y, int w, int h);
  1008. EAPI void             ecore_x_window_configure(Ecore_X_Window win,
  1009.                            Ecore_X_Window_Configure_Mask mask,
  1010.                            int x, int y, int w, int h,
  1011.                            int border_width,
  1012.                            Ecore_X_Window sibling,
  1013.                            int stack_mode);
  1014. EAPI void             ecore_x_window_cursor_set(Ecore_X_Window win, Ecore_X_Cursor c);
  1015. EAPI void             ecore_x_window_del(Ecore_X_Window win);
  1016. EAPI void             ecore_x_window_ignore_set(Ecore_X_Window win, int ignore);
  1017. EAPI Ecore_X_Window  *ecore_x_window_ignore_list(int *num);
  1018.  
  1019. EAPI void             ecore_x_window_delete_request_send(Ecore_X_Window win);
  1020. EAPI void             ecore_x_window_show(Ecore_X_Window win);
  1021. EAPI void             ecore_x_window_hide(Ecore_X_Window win);
  1022. EAPI void             ecore_x_window_move(Ecore_X_Window win, int x, int y);
  1023. EAPI void             ecore_x_window_resize(Ecore_X_Window win, int w, int h);
  1024. EAPI void             ecore_x_window_move_resize(Ecore_X_Window win, int x, int y, int w, int h);
  1025. EAPI void             ecore_x_window_focus(Ecore_X_Window win);
  1026. EAPI void             ecore_x_window_focus_at_time(Ecore_X_Window win, Ecore_X_Time t);
  1027. EAPI Ecore_X_Window   ecore_x_window_focus_get(void);
  1028. EAPI void             ecore_x_window_raise(Ecore_X_Window win);
  1029. EAPI void             ecore_x_window_lower(Ecore_X_Window win);
  1030. EAPI void             ecore_x_window_reparent(Ecore_X_Window win, Ecore_X_Window new_parent, int x, int y);
  1031. EAPI void             ecore_x_window_size_get(Ecore_X_Window win, int *w, int *h);
  1032. EAPI void             ecore_x_window_geometry_get(Ecore_X_Window win, int *x, int *y, int *w, int *h);
  1033. EAPI int              ecore_x_window_border_width_get(Ecore_X_Window win);
  1034. EAPI void             ecore_x_window_border_width_set(Ecore_X_Window win, int width);
  1035. EAPI int              ecore_x_window_depth_get(Ecore_X_Window win);
  1036. EAPI void             ecore_x_window_cursor_show(Ecore_X_Window win, int show);
  1037. EAPI void             ecore_x_window_defaults_set(Ecore_X_Window win);
  1038. EAPI int              ecore_x_window_visible_get(Ecore_X_Window win);
  1039. EAPI Ecore_X_Window   ecore_x_window_at_xy_get(int x, int y);
  1040. EAPI Ecore_X_Window   ecore_x_window_at_xy_with_skip_get(int x, int y, Ecore_X_Window *skip, int skip_num);
  1041. EAPI Ecore_X_Window   ecore_x_window_parent_get(Ecore_X_Window win);
  1042.  
  1043. EAPI void             ecore_x_window_background_color_set(Ecore_X_Window win,
  1044.                               unsigned short r,
  1045.                               unsigned short g,
  1046.                               unsigned short b);
  1047. EAPI void             ecore_x_window_gravity_set(Ecore_X_Window win,
  1048.                          Ecore_X_Gravity grav);
  1049. EAPI void             ecore_x_window_pixel_gravity_set(Ecore_X_Window win,
  1050.                                Ecore_X_Gravity grav);
  1051. EAPI void             ecore_x_window_pixmap_set(Ecore_X_Window win,
  1052.                         Ecore_X_Pixmap pmap);
  1053. EAPI void             ecore_x_window_area_clear(Ecore_X_Window win,
  1054.                         int x, int y, int w, int h);
  1055. EAPI void             ecore_x_window_area_expose(Ecore_X_Window win,
  1056.                          int x, int y, int w, int h);
  1057.        
  1058. EAPI void             ecore_x_window_prop_card32_set(Ecore_X_Window win, Ecore_X_Atom atom,
  1059.                              unsigned int *val, unsigned int num);
  1060. EAPI int              ecore_x_window_prop_card32_get(Ecore_X_Window win, Ecore_X_Atom atom,
  1061.                              unsigned int *val, unsigned int len);
  1062. EAPI int              ecore_x_window_prop_card32_list_get(Ecore_X_Window win,
  1063.                                                           Ecore_X_Atom atom,
  1064.                                                           unsigned int **plst);
  1065.  
  1066. EAPI void             ecore_x_window_prop_xid_set(Ecore_X_Window win,
  1067.                                                   Ecore_X_Atom atom,
  1068.                                                   Ecore_X_Atom type,
  1069.                                                   Ecore_X_ID * lst,
  1070.                                                   unsigned int num);
  1071. EAPI int              ecore_x_window_prop_xid_get(Ecore_X_Window win,
  1072.                                                   Ecore_X_Atom atom,
  1073.                                                   Ecore_X_Atom type,
  1074.                                                   Ecore_X_ID * lst,
  1075.                                                   unsigned int len);
  1076. EAPI int              ecore_x_window_prop_xid_list_get(Ecore_X_Window win,
  1077.                                                        Ecore_X_Atom atom,
  1078.                                                        Ecore_X_Atom type,
  1079.                                                        Ecore_X_ID ** plst);
  1080. EAPI void             ecore_x_window_prop_xid_list_change(Ecore_X_Window win,
  1081.                                                           Ecore_X_Atom atom,
  1082.                                                           Ecore_X_Atom type,
  1083.                                                           Ecore_X_ID item,
  1084.                                                           int op);
  1085. EAPI void             ecore_x_window_prop_atom_set(Ecore_X_Window win,
  1086.                                                    Ecore_X_Atom atom,
  1087.                                                    Ecore_X_Atom * val,
  1088.                                                    unsigned int num);
  1089. EAPI int              ecore_x_window_prop_atom_get(Ecore_X_Window win,
  1090.                                                    Ecore_X_Atom atom,
  1091.                                                    Ecore_X_Atom * val,
  1092.                                                    unsigned int len);
  1093. EAPI int              ecore_x_window_prop_atom_list_get(Ecore_X_Window win,
  1094.                                                         Ecore_X_Atom atom,
  1095.                                                         Ecore_X_Atom ** plst);
  1096. EAPI void             ecore_x_window_prop_atom_list_change(Ecore_X_Window win,
  1097.                                                            Ecore_X_Atom atom,
  1098.                                                            Ecore_X_Atom item,
  1099.                                                            int op); 
  1100. EAPI void             ecore_x_window_prop_window_set(Ecore_X_Window win,
  1101.                                                      Ecore_X_Atom atom,
  1102.                                                      Ecore_X_Window * val,
  1103.                                                      unsigned int num);
  1104. EAPI int              ecore_x_window_prop_window_get(Ecore_X_Window win,
  1105.                                                      Ecore_X_Atom atom,
  1106.                                                      Ecore_X_Window * val,
  1107.                                                      unsigned int len);
  1108. EAPI int              ecore_x_window_prop_window_list_get(Ecore_X_Window win,
  1109.                                                           Ecore_X_Atom atom,
  1110.                                                           Ecore_X_Window ** plst);
  1111.  
  1112. EAPI Ecore_X_Atom     ecore_x_window_prop_any_type(void);
  1113. EAPI void             ecore_x_window_prop_property_set(Ecore_X_Window win, Ecore_X_Atom type, Ecore_X_Atom format, int size, void *data, int number);
  1114. EAPI int              ecore_x_window_prop_property_get(Ecore_X_Window win, Ecore_X_Atom property, Ecore_X_Atom type, int size, unsigned char **data, int *num);
  1115. EAPI void             ecore_x_window_prop_property_del(Ecore_X_Window win, Ecore_X_Atom property);
  1116. EAPI Ecore_X_Atom    *ecore_x_window_prop_list(Ecore_X_Window win, int *num_ret);
  1117. EAPI void             ecore_x_window_prop_string_set(Ecore_X_Window win, Ecore_X_Atom type, const char *str);
  1118. EAPI char            *ecore_x_window_prop_string_get(Ecore_X_Window win, Ecore_X_Atom type);
  1119. EAPI int              ecore_x_window_prop_protocol_isset(Ecore_X_Window win, Ecore_X_WM_Protocol protocol);
  1120. EAPI Ecore_X_WM_Protocol *ecore_x_window_prop_protocol_list_get(Ecore_X_Window win, int *num_ret);
  1121.  
  1122. EAPI void               ecore_x_window_shape_mask_set(Ecore_X_Window win, Ecore_X_Pixmap mask);
  1123. EAPI void               ecore_x_window_shape_window_set(Ecore_X_Window win, Ecore_X_Window shape_win);
  1124. EAPI void               ecore_x_window_shape_window_set_xy(Ecore_X_Window win, Ecore_X_Window shape_win, int x, int y);
  1125. EAPI void               ecore_x_window_shape_rectangle_set(Ecore_X_Window win, int x, int y, int w, int h);
  1126. EAPI void               ecore_x_window_shape_rectangles_set(Ecore_X_Window win, Ecore_X_Rectangle *rects, int num);
  1127. EAPI void               ecore_x_window_shape_window_add(Ecore_X_Window win, Ecore_X_Window shape_win);
  1128. EAPI void               ecore_x_window_shape_window_add_xy(Ecore_X_Window win, Ecore_X_Window shape_win, int x, int y);
  1129. EAPI void               ecore_x_window_shape_rectangle_add(Ecore_X_Window win, int x, int y, int w, int h);
  1130. EAPI void               ecore_x_window_shape_rectangle_clip(Ecore_X_Window win, int x, int y, int w, int h);
  1131. EAPI void               ecore_x_window_shape_rectangles_add(Ecore_X_Window win, Ecore_X_Rectangle *rects, int num);
  1132. EAPI Ecore_X_Rectangle *ecore_x_window_shape_rectangles_get(Ecore_X_Window win, int *num_ret);
  1133. EAPI void               ecore_x_window_shape_events_select(Ecore_X_Window win, int on);
  1134.    
  1135. EAPI Ecore_X_Pixmap   ecore_x_pixmap_new(Ecore_X_Window win, int w, int h, int dep);
  1136. EAPI void             ecore_x_pixmap_del(Ecore_X_Pixmap pmap);
  1137. EAPI void             ecore_x_pixmap_paste(Ecore_X_Pixmap pmap, Ecore_X_Drawable dest, Ecore_X_GC gc, int sx, int sy, int w, int h, int dx, int dy);
  1138. EAPI void             ecore_x_pixmap_geometry_get(Ecore_X_Pixmap pmap, int *x, int *y, int *w, int *h);
  1139. EAPI int              ecore_x_pixmap_depth_get(Ecore_X_Pixmap pmap);
  1140.  
  1141. EAPI Ecore_X_GC       ecore_x_gc_new(Ecore_X_Drawable draw);
  1142. EAPI void             ecore_x_gc_del(Ecore_X_GC gc);
  1143.  
  1144. EAPI int              ecore_x_client_message32_send(Ecore_X_Window win, Ecore_X_Atom type, Ecore_X_Event_Mask mask, long d0, long d1, long d2, long d3, long d4);
  1145. EAPI int              ecore_x_client_message8_send(Ecore_X_Window win, Ecore_X_Atom type, const void *data, int len);
  1146.  
  1147.    
  1148. /* FIXME: these funcs need categorising */
  1149. EAPI void            ecore_x_drawable_geometry_get(Ecore_X_Drawable d, int *x, int *y, int *w, int *h);
  1150. EAPI int             ecore_x_drawable_border_width_get(Ecore_X_Drawable d);
  1151. EAPI int             ecore_x_drawable_depth_get(Ecore_X_Drawable d);
  1152. EAPI Ecore_X_Window *ecore_x_window_root_list(int *num_ret);
  1153. EAPI Ecore_X_Window  ecore_x_window_root_first_get(void);
  1154. EAPI int             ecore_x_window_manage(Ecore_X_Window win);
  1155. EAPI void            ecore_x_window_container_manage(Ecore_X_Window win);
  1156. EAPI void            ecore_x_window_client_manage(Ecore_X_Window win);
  1157. EAPI void            ecore_x_window_sniff(Ecore_X_Window win);
  1158. EAPI void            ecore_x_window_client_sniff(Ecore_X_Window win);
  1159. EAPI Ecore_X_Atom    ecore_x_atom_get(const char *name);
  1160.  
  1161.  
  1162.  
  1163. EAPI void            ecore_x_icccm_init(void);
  1164. EAPI void            ecore_x_icccm_state_set(Ecore_X_Window win, Ecore_X_Window_State_Hint state);
  1165. EAPI Ecore_X_Window_State_Hint ecore_x_icccm_state_get(Ecore_X_Window win);
  1166. EAPI void            ecore_x_icccm_delete_window_send(Ecore_X_Window win, Ecore_X_Time t);
  1167. EAPI void            ecore_x_icccm_take_focus_send(Ecore_X_Window win, Ecore_X_Time t);
  1168. EAPI void            ecore_x_icccm_save_yourself_send(Ecore_X_Window win, Ecore_X_Time t);
  1169. EAPI void            ecore_x_icccm_move_resize_send(Ecore_X_Window win, int x, int y, int w, int h);
  1170. EAPI void  ecore_x_icccm_hints_set(Ecore_X_Window win,
  1171.                    int accepts_focus,
  1172.                    Ecore_X_Window_State_Hint initial_state,
  1173.                    Ecore_X_Pixmap icon_pixmap,
  1174.                    Ecore_X_Pixmap icon_mask,
  1175.                    Ecore_X_Window icon_window,
  1176.                    Ecore_X_Window window_group,
  1177.                    int is_urgent);
  1178. EAPI int  ecore_x_icccm_hints_get(Ecore_X_Window win,
  1179.                   int *accepts_focus,
  1180.                   Ecore_X_Window_State_Hint *initial_state,
  1181.                   Ecore_X_Pixmap *icon_pixmap,
  1182.                   Ecore_X_Pixmap *icon_mask,
  1183.                   Ecore_X_Window *icon_window,
  1184.                   Ecore_X_Window *window_group,
  1185.                   int *is_urgent);
  1186. EAPI void  ecore_x_icccm_size_pos_hints_set(Ecore_X_Window win,
  1187.                         int request_pos,
  1188.                         Ecore_X_Gravity gravity,
  1189.                         int min_w, int min_h,
  1190.                         int max_w, int max_h,
  1191.                         int base_w, int base_h,
  1192.                         int step_x, int step_y,
  1193.                         double min_aspect,
  1194.                         double max_aspect);
  1195. EAPI int   ecore_x_icccm_size_pos_hints_get(Ecore_X_Window win,
  1196.                         int *request_pos,
  1197.                         Ecore_X_Gravity *gravity,
  1198.                         int *min_w, int *min_h,
  1199.                         int *max_w, int *max_h,
  1200.                         int *base_w, int *base_h,
  1201.                         int *step_x, int *step_y,
  1202.                         double *min_aspect,
  1203.                         double *max_aspect);
  1204. EAPI void  ecore_x_icccm_title_set(Ecore_X_Window win, const char *t);
  1205. EAPI char *ecore_x_icccm_title_get(Ecore_X_Window win);
  1206. EAPI void  ecore_x_icccm_protocol_set(Ecore_X_Window win,
  1207.                       Ecore_X_WM_Protocol protocol,
  1208.                       int on);
  1209. EAPI int   ecore_x_icccm_protocol_isset(Ecore_X_Window win,
  1210.                     Ecore_X_WM_Protocol protocol);
  1211. EAPI void  ecore_x_icccm_name_class_set(Ecore_X_Window win,
  1212.                     const char *n,
  1213.                     const char *c);
  1214. EAPI void  ecore_x_icccm_name_class_get(Ecore_X_Window win,
  1215.                     char **n,
  1216.                     char **c);
  1217. EAPI char *ecore_x_icccm_client_machine_get(Ecore_X_Window win);
  1218. EAPI void  ecore_x_icccm_command_set(Ecore_X_Window win, int argc, char **argv);
  1219. EAPI void  ecore_x_icccm_command_get(Ecore_X_Window win, int *argc, char ***argv);
  1220. EAPI char *ecore_x_icccm_icon_name_get(Ecore_X_Window win);
  1221. EAPI void  ecore_x_icccm_icon_name_set(Ecore_X_Window win, const char *t);
  1222. EAPI void  ecore_x_icccm_colormap_window_set(Ecore_X_Window win, Ecore_X_Window subwin);
  1223. EAPI void  ecore_x_icccm_colormap_window_unset(Ecore_X_Window win, Ecore_X_Window subwin);
  1224. EAPI void  ecore_x_icccm_transient_for_set(Ecore_X_Window win, Ecore_X_Window forwin);
  1225. EAPI void  ecore_x_icccm_transient_for_unset(Ecore_X_Window win);
  1226. EAPI Ecore_X_Window ecore_x_icccm_transient_for_get(Ecore_X_Window win);
  1227. EAPI void  ecore_x_icccm_window_role_set(Ecore_X_Window win, const char *role);
  1228. EAPI char *ecore_x_icccm_window_role_get(Ecore_X_Window win);
  1229. EAPI void  ecore_x_icccm_client_leader_set(Ecore_X_Window win, Ecore_X_Window l);
  1230. EAPI Ecore_X_Window ecore_x_icccm_client_leader_get(Ecore_X_Window win);
  1231. EAPI void ecore_x_icccm_iconic_request_send(Ecore_X_Window win, Ecore_X_Window root);
  1232.  
  1233.  
  1234. typedef enum _Ecore_X_MWM_Hint_Func
  1235. {
  1236.    ECORE_X_MWM_HINT_FUNC_ALL = (1 << 0),
  1237.    ECORE_X_MWM_HINT_FUNC_RESIZE = (1 << 1),
  1238.    ECORE_X_MWM_HINT_FUNC_MOVE = (1 << 2),
  1239.    ECORE_X_MWM_HINT_FUNC_MINIMIZE = (1 << 3),
  1240.    ECORE_X_MWM_HINT_FUNC_MAXIMIZE = (1 << 4),
  1241.    ECORE_X_MWM_HINT_FUNC_CLOSE = (1 << 5)
  1242. } Ecore_X_MWM_Hint_Func;
  1243.  
  1244. typedef enum _Ecore_X_MWM_Hint_Decor
  1245. {
  1246.    ECORE_X_MWM_HINT_DECOR_ALL = (1 << 0),
  1247.    ECORE_X_MWM_HINT_DECOR_BORDER = (1 << 1),
  1248.    ECORE_X_MWM_HINT_DECOR_RESIZEH = (1 << 2),
  1249.    ECORE_X_MWM_HINT_DECOR_TITLE = (1 << 3),
  1250.    ECORE_X_MWM_HINT_DECOR_MENU = (1 << 4),
  1251.    ECORE_X_MWM_HINT_DECOR_MINIMIZE = (1 << 5),
  1252.    ECORE_X_MWM_HINT_DECOR_MAXIMIZE = (1 << 6)
  1253. } Ecore_X_MWM_Hint_Decor;
  1254.  
  1255. typedef enum _Ecore_X_MWM_Hint_Input
  1256. {
  1257.    ECORE_X_MWM_HINT_INPUT_MODELESS = 0,
  1258.    ECORE_X_MWM_HINT_INPUT_PRIMARY_APPLICATION_MODAL = 1,
  1259.    ECORE_X_MWM_HINT_INPUT_SYSTEM_MODAL = 2,
  1260.    ECORE_X_MWM_HINT_INPUT_FULL_APPLICATION_MODAL = 3,
  1261. } Ecore_X_MWM_Hint_Input;
  1262.  
  1263. EAPI int ecore_x_mwm_hints_get(Ecore_X_Window win,
  1264.                    Ecore_X_MWM_Hint_Func *fhint,
  1265.                    Ecore_X_MWM_Hint_Decor *dhint,
  1266.                    Ecore_X_MWM_Hint_Input *ihint);
  1267. EAPI void ecore_x_mwm_borderless_set(Ecore_X_Window win, int borderless);
  1268.        
  1269. /* netwm */
  1270. EAPI void                ecore_x_netwm_init(void);
  1271. EAPI void                ecore_x_netwm_shutdown(void);
  1272. EAPI void                ecore_x_netwm_wm_identify(Ecore_X_Window root, Ecore_X_Window check, const char *wm_name);
  1273. EAPI void                ecore_x_netwm_supported_set(Ecore_X_Window root, Ecore_X_Atom *supported, int num);
  1274. EAPI int                 ecore_x_netwm_supported_get(Ecore_X_Window root, Ecore_X_Atom **supported, int *num);
  1275. EAPI void                ecore_x_netwm_desk_count_set(Ecore_X_Window root, unsigned int n_desks);
  1276. EAPI void                ecore_x_netwm_desk_roots_set(Ecore_X_Window root, Ecore_X_Window *vroots, unsigned int n_desks);
  1277. EAPI void                ecore_x_netwm_desk_names_set(Ecore_X_Window root, const char **names, unsigned int n_desks);
  1278. EAPI void                ecore_x_netwm_desk_size_set(Ecore_X_Window root, unsigned int width, unsigned int height);
  1279. EAPI void                ecore_x_netwm_desk_workareas_set(Ecore_X_Window root, unsigned int *areas, unsigned int n_desks);
  1280. EAPI void                ecore_x_netwm_desk_current_set(Ecore_X_Window root, unsigned int desk);
  1281. EAPI void                ecore_x_netwm_desk_viewports_set(Ecore_X_Window root, unsigned int *origins, unsigned int n_desks);
  1282. EAPI void                ecore_x_netwm_desk_layout_set(Ecore_X_Window root, int orientation, int columns, int rows, int starting_corner);
  1283. EAPI void                ecore_x_netwm_showing_desktop_set(Ecore_X_Window root, int on);
  1284. EAPI void                ecore_x_netwm_client_list_set(Ecore_X_Window root, Ecore_X_Window *p_clients, unsigned int n_clients);
  1285. EAPI void                ecore_x_netwm_client_list_stacking_set(Ecore_X_Window root, Ecore_X_Window *p_clients, unsigned int n_clients);
  1286. EAPI void                ecore_x_netwm_client_active_set(Ecore_X_Window root, Ecore_X_Window win);
  1287. EAPI void                ecore_x_netwm_name_set(Ecore_X_Window win, const char *name);
  1288. EAPI int                 ecore_x_netwm_name_get(Ecore_X_Window win, char **name);
  1289. EAPI void                ecore_x_netwm_startup_id_set(Ecore_X_Window win, const char *id);
  1290. EAPI int                 ecore_x_netwm_startup_id_get(Ecore_X_Window win, char **id);
  1291. EAPI void                ecore_x_netwm_visible_name_set(Ecore_X_Window win, const char *name);
  1292. EAPI int                 ecore_x_netwm_visible_name_get(Ecore_X_Window win, char **name);
  1293. EAPI void                ecore_x_netwm_icon_name_set(Ecore_X_Window win, const char *name);
  1294. EAPI int                 ecore_x_netwm_icon_name_get(Ecore_X_Window win, char **name);
  1295. EAPI void                ecore_x_netwm_visible_icon_name_set(Ecore_X_Window win, const char *name);
  1296. EAPI int                 ecore_x_netwm_visible_icon_name_get(Ecore_X_Window win, char **name);
  1297. EAPI void                ecore_x_netwm_desktop_set(Ecore_X_Window win, unsigned int desk);
  1298. EAPI int                 ecore_x_netwm_desktop_get(Ecore_X_Window win, unsigned int *desk);
  1299. EAPI void                ecore_x_netwm_strut_set(Ecore_X_Window win, int left, int right, int top, int bottom);
  1300. EAPI int                 ecore_x_netwm_strut_get(Ecore_X_Window win, int *left, int *right, int *top, int *bottom);
  1301. EAPI void                ecore_x_netwm_strut_partial_set(Ecore_X_Window win, int left, int right, int top, int bottom, int left_start_y, int left_end_y, int right_start_y, int right_end_y, int top_start_x, int top_end_x, int bottom_start_x, int bottom_end_x);
  1302. EAPI int                 ecore_x_netwm_strut_partial_get(Ecore_X_Window win, int *left, int *right, int *top, int *bottom, int *left_start_y, int *left_end_y, int *right_start_y, int *right_end_y, int *top_start_x, int *top_end_x, int *bottom_start_x, int *bottom_end_x);
  1303. EAPI int                 ecore_x_netwm_icons_get(Ecore_X_Window win, Ecore_X_Icon **icon, int *num);
  1304. EAPI void                ecore_x_netwm_icon_geometry_set(Ecore_X_Window win, int x, int y, int width, int height);
  1305. EAPI int                 ecore_x_netwm_icon_geometry_get(Ecore_X_Window win, int *x, int *y, int *width, int *height);
  1306. EAPI void                ecore_x_netwm_pid_set(Ecore_X_Window win, int pid);
  1307. EAPI int                 ecore_x_netwm_pid_get(Ecore_X_Window win, int *pid);
  1308. EAPI void                ecore_x_netwm_handled_icons_set(Ecore_X_Window win);
  1309. EAPI int                 ecore_x_netwm_handled_icons_get(Ecore_X_Window win);
  1310. EAPI void                ecore_x_netwm_user_time_set(Ecore_X_Window win, unsigned int time);
  1311. EAPI int                 ecore_x_netwm_user_time_get(Ecore_X_Window win, unsigned int *time);
  1312. EAPI void                ecore_x_netwm_window_state_set(Ecore_X_Window win, Ecore_X_Window_State *state, unsigned int num);
  1313. EAPI int                 ecore_x_netwm_window_state_get(Ecore_X_Window win, Ecore_X_Window_State **state, unsigned int *num);
  1314. EAPI void                ecore_x_netwm_window_type_set(Ecore_X_Window win, Ecore_X_Window_Type type);
  1315. EAPI int                 ecore_x_netwm_window_type_get(Ecore_X_Window win, Ecore_X_Window_Type *type);
  1316. EAPI int                 ecore_x_netwm_allowed_action_isset(Ecore_X_Window win, Ecore_X_Action action);
  1317. EAPI void                ecore_x_netwm_allowed_action_set(Ecore_X_Window win, Ecore_X_Action action, int on);
  1318. EAPI void                ecore_x_netwm_opacity_set(Ecore_X_Window win, unsigned int opacity);
  1319. EAPI int                 ecore_x_netwm_opacity_get(Ecore_X_Window win, unsigned int *opacity);
  1320. EAPI void                ecore_x_netwm_frame_size_set(Ecore_X_Window win, int fl, int fr, int ft, int fb);
  1321. EAPI int                 ecore_x_netwm_frame_size_get(Ecore_X_Window win, int *fl, int *fr, int *ft, int *fb);
  1322. EAPI int                 ecore_x_netwm_sync_counter_get(Ecore_X_Window win, Ecore_X_Sync_Counter *counter);
  1323. EAPI void                ecore_x_netwm_ping_send(Ecore_X_Window win);
  1324. EAPI void                ecore_x_netwm_sync_request_send(Ecore_X_Window win, unsigned int serial);
  1325. EAPI void                ecore_x_netwm_state_request_send(Ecore_X_Window win, Ecore_X_Window root, Ecore_X_Window_State s1, Ecore_X_Window_State s2, int set);
  1326. EAPI void                ecore_x_netwm_desktop_request_send(Ecore_X_Window win, Ecore_X_Window root, unsigned int desktop);
  1327.  
  1328.  
  1329.  
  1330.  
  1331. EAPI void                ecore_x_e_init(void);
  1332. EAPI void                ecore_x_e_frame_size_set(Ecore_X_Window win, int fl, int fr, int ft, int fb);
  1333.        
  1334.    
  1335. EAPI int                 ecore_x_xinerama_screen_count_get(void);
  1336. EAPI int                 ecore_x_xinerama_screen_geometry_get(int screen, int *x, int *y, int *w, int *h);
  1337.    
  1338. /* FIXME: these funcs need categorising */
  1339.  
  1340. typedef struct _Ecore_X_Window_Attributes
  1341. {
  1342.    Ecore_X_Window     root;
  1343.    int                x, y, w, h;
  1344.    int                border;
  1345.    int                depth;
  1346.    char               visible : 1;
  1347.    char               viewable : 1;
  1348.    char               override : 1;
  1349.    char               input_only : 1;
  1350.    char               save_under : 1;
  1351.    struct {
  1352.     Ecore_X_Event_Mask mine;
  1353.     Ecore_X_Event_Mask all;
  1354.     Ecore_X_Event_Mask no_propagate;
  1355.    } event_mask;
  1356.    Ecore_X_Gravity    window_gravity;
  1357.    Ecore_X_Gravity    pixel_gravity;
  1358.    Ecore_X_Colormap   colormap;
  1359.    /* FIXME: missing
  1360.     * Colormap comormap;
  1361.     * int map_installed;
  1362.     * Screen *screen;
  1363.     * Visual *visual;
  1364.     */
  1365. } Ecore_X_Window_Attributes;
  1366.    
  1367. EAPI int  ecore_x_window_attributes_get(Ecore_X_Window win, Ecore_X_Window_Attributes *att_ret);
  1368. EAPI void ecore_x_window_save_set_add(Ecore_X_Window win);
  1369. EAPI void ecore_x_window_save_set_del(Ecore_X_Window win);
  1370. EAPI Ecore_X_Window *ecore_x_window_children_get(Ecore_X_Window win, int *num);
  1371.   
  1372. EAPI int  ecore_x_cursor_color_supported_get(void);
  1373. EAPI Ecore_X_Cursor ecore_x_cursor_new(Ecore_X_Window win, int *pixels, int w, int h, int hot_x, int hot_y);
  1374. EAPI void ecore_x_cursor_free(Ecore_X_Cursor c);
  1375. EAPI Ecore_X_Cursor ecore_x_cursor_shape_get(int shape);
  1376. EAPI void ecore_x_cursor_size_set(int size);
  1377. EAPI int  ecore_x_cursor_size_get(void);
  1378.  
  1379.    
  1380. EAPI int  ecore_x_pointer_grab(Ecore_X_Window win);
  1381. EAPI int  ecore_x_pointer_confine_grab(Ecore_X_Window win);
  1382. EAPI void ecore_x_pointer_ungrab(void);
  1383. EAPI int  ecore_x_pointer_warp(Ecore_X_Window win, int x, int y);
  1384. EAPI int  ecore_x_keyboard_grab(Ecore_X_Window win);
  1385. EAPI void ecore_x_keyboard_ungrab(void);
  1386. EAPI void ecore_x_grab(void);
  1387. EAPI void ecore_x_ungrab(void);
  1388. EAPI void ecore_x_passive_grab_replay_func_set(int (*func) (void *data, int event_type, void *event), void *data);
  1389. EAPI void ecore_x_window_button_grab(Ecore_X_Window win, int button,
  1390.                      Ecore_X_Event_Mask event_mask,
  1391.                      int mod, int any_mod);
  1392. EAPI void ecore_x_window_button_ungrab(Ecore_X_Window win, int button,
  1393.                        int mod, int any_mod);
  1394. EAPI void ecore_x_window_key_grab(Ecore_X_Window win, char *key,
  1395.                   int mod, int any_mod);
  1396. EAPI void ecore_x_window_key_ungrab(Ecore_X_Window win, char *key,
  1397.                     int mod, int any_mod);
  1398.        
  1399. EAPI void ecore_x_focus_reset(void);
  1400. EAPI void ecore_x_events_allow_all(void);
  1401. EAPI void ecore_x_pointer_last_xy_get(int *x, int *y);
  1402. EAPI void ecore_x_pointer_xy_get(Ecore_X_Window win, int *x, int *y);
  1403.        
  1404. /* ecore_x_sync.c */
  1405. EAPI Ecore_X_Sync_Alarm ecore_x_sync_alarm_new(Ecore_X_Sync_Counter counter);
  1406. EAPI int                ecore_x_sync_alarm_free(Ecore_X_Sync_Alarm alarm);
  1407.  
  1408. /* ecore_x_randr.c */
  1409. typedef struct _Ecore_X_Screen_Size Ecore_X_Screen_Size;
  1410. struct _Ecore_X_Screen_Size
  1411. {
  1412.    int width, height;
  1413. };
  1414.  
  1415. EAPI int                  ecore_x_randr_events_select(Ecore_X_Window win, int on);
  1416. EAPI Ecore_X_Screen_Size *ecore_x_randr_screen_sizes_get(Ecore_X_Window root, int *num);
  1417. EAPI Ecore_X_Screen_Size  ecore_x_randr_current_screen_size_get(Ecore_X_Window root);
  1418. EAPI int                  ecore_x_randr_screen_size_set(Ecore_X_Window root,
  1419.                             Ecore_X_Screen_Size size);
  1420.  
  1421.  
  1422. #ifdef __cplusplus
  1423. }
  1424. #endif
  1425.  
  1426. #endif
  1427.